package com.zhang.sdk.utils.device;

import android.content.Context;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.WindowManager;

/**
 * 设备屏幕工具类
 *
 * 功能：包括获取屏幕宽高、dp2px等方法
 * @author zhang.x
 */
public class ScreenUtil {

    /**
     * 获取屏幕高度，不包含虚拟键(px)
     */
    public static int getScreenHeight(Context context) {
        return context.getResources().getDisplayMetrics().heightPixels;
    }

    /**
     * 获取屏幕宽度、高度，包含虚拟键(px)
     */
    public static int[] getScreenHeight(WindowManager manager) {
        int[] results = new int[2];
        DisplayMetrics dm = new DisplayMetrics();
        manager.getDefaultDisplay().getRealMetrics(dm);
        results[0] = dm.widthPixels;
        results[1] = dm.heightPixels;
        return results;
    }

    /**
     * 获取屏幕宽度(px)
     */
    public static int getScreenWidth(Context context) {
        return context.getResources().getDisplayMetrics().widthPixels;
    }



    public static int dp2px(Context context, float dp) {
        return (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, context.getResources().getDisplayMetrics()) + 0.5f);
    }

    public static int sp2px(Context context, float sp) {
        return (int) (TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, context.getResources().getDisplayMetrics()) + 0.5f);
    }
}
